using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class CopsRobbersSettings : BaseGameModSettings
{
	public List<string> copSkins;

	public List<string> robberSkins;

	[Header("Первая карта")]
	[Header("Точка, где лежит инвентарь заключенных")]
	public Vector3 inventoryBonusPoint1;

	[Header("Вторая карта")]
	public Vector3 inventoryBonusPoint2;

	[Header("Сколько минимуму надо копов и зеков для игры")]
	public int minCops;

	public int minRobbers;

	[Header("Могут ли копы уничтожить ворота")]
	public bool friendlyFire;

	[Header("Расстояние, с которого надо показывать полоску жизней")]
	public float distance;

	[Header("Запас прочности ворот по котлам")]
	public List<int> boilerToGateHealth;

	[Header("Времена возраждений в зависимости от текущего этапа игры")]
	public List<int> robbersStageToRespawnTime;

	public List<int> copsStageToRespawnTime;

	[Header("Завершать ли матч, если какая-либо команда пуста")]
	public bool timeOutWhenLeave = true;

	public CopsRobbersSettings()
	{
		copSkins = new List<string>();
		robberSkins = new List<string>();
	}

	public int GetRespawnTime(PunTeams.Team playerTeam, int currentGateIndex)
	{
		switch (playerTeam)
		{
		case PunTeams.Team.blue:
			return robbersStageToRespawnTime[Mathf.Clamp(currentGateIndex, 0, CopsAndRobbersController.instance.gates.Count - 1)];
		case PunTeams.Team.red:
			return copsStageToRespawnTime[Mathf.Clamp(currentGateIndex, 0, CopsAndRobbersController.instance.gates.Count - 1)];
		default:
			BCWDebug.LogError("LOG: Запрашивается время респауна для игрока с командой none");
			return 2;
		}
	}

	public Vector3 GetBonusSpawnPoint()
	{
		string text = SceneManager.GetActiveScene().name;
		if (text == "cr_1")
		{
			return inventoryBonusPoint1;
		}
		if (text == "cr_2")
		{
			return inventoryBonusPoint2;
		}
		return Vector3.zero;
	}
}
